約 2,874,206 件
https://w.atwiki.jp/0to1/pages/14.html
停止 /usr/sbin/halt プロセス停止、ディスク同期、ファイルシステムのマウント解除 可能であれば電源を切る。 ただし、rc0 スクリプトを実行しないため推奨できない /usr/sbin/poweroff halt へのシンボリックリンク /sbin/init rc* スクリプトを実行しプロセスを停止 /etc/telinit init へのシンボリックリンク /usr/sbin/uadmin システム停止、リブート、サスペンドなどを行う /etc/inittab を参照しないため停止コマンドとしては推奨できない /sbin/fastboot 稼動中プロセスを単に kill するだけ、安全とはいえない 再起動 /usr/sbin/shutdown -r now /sbin/init 6 /etc/telinit 6 /usr/sbin/reboot /usr/sbin/reboot -n メモリ上のファイルシステム管理情報をディスクに書き込まない /usr/sbin/reboot -q init, shutdown コマンドでリブートできない場合 ●パフォーマンスを向上する。 (1) デスクトップ上の [マイコンピューター] を右クリックし、メニューの [プロパティ] を選択。 (2) [システムのプロパティ] ウィンドウの [詳細設定] タブを選択。 (3) [パフォーマンス] 項目の [設定] を選択。 ●***基礎 IPアドレス 郵便で例えるなら、アパートの住所 ポート アパートに所属する部屋の番号 マルチリンク制御 複数の通信回線を論理的に束ねて、一つのデータリンクとして動作させるためのプロトコル。例.ISDNの2つのBチャネルを合わせて128kbit/秒の速度として使用する。 インターネットの定義 スニーカーネット フロッピーとかにデータを入れて、歩いてデータを運ぶ インターネットワーキング どんな小さいネットワークでもネットワークをまたがっていればインターネットワーキング IX (Internet eXchage)インターネットによる接続点の一つ。(大学間-企業間を結ぶ) インターネット 世界中にまたがった通信インフラ インターネットの歴史はIPの歴史 最初はDAPRA(米国国防総省高等研究所計画局)によって、可用性が高く、効率的な軍事ネットワークプロトコルとして開発される。1982年,研究機関や大学などの4拠点が体系化を完了ARPANET(最初にネットワーク)として立ち上げる。UNIXの標準プロトコルとして採用されたこのころ多くのプロトコルが存在していて、 Dod(米国国防省)が1規格=1機能とした。1993年、日本で最初にインターネットの規格を行う。WIDEやJUNETの学術機関などらが民間への普及を開始した。接続業者ISPは、IXを通じて他企業のISPや企業を通じて、インターネットにアクセスすることができる。 イントラネット 企業内ネットワーク超大事なデータのために、独自のプロトコルを作ってる企業もある インターネットVPN 伝送路的には、インターネットだが、仮想的な専用通路を使う エクストラネット 異なる企業間。(協力会社) プロトコル プロトコル 通信を行うに際して、事前に取り決めるルール【特徴】詳細規定と例外規定の細かさ【例】通信速度、通信形式、宛て先アドレス、データの書き方 プロトコルの歴史 プロトコルは誰が作っても良い。(従来は、主にベンダが策定)↓ベンダは自社囲い込みのため、独自のプロトコルを策定↓ネットワークシステム普及のため、標準化が必要 IETF Internet Enginnering Task Force。RFC(Request For Commnets)規格文書を発行 ISO International Organization for Standardization国際標準化機構 ITU International Telecommunications Unions国際電気通信連合。下にITU-Tがいる ITU-T TelecommunicatiopnITUで電気通信技術の標準化を担当する部門 IEEE Institute of Electrical and Rlectronic Engineers米国電気電子学会 NIST Natipnal Institute of Standards and Technology米国標準技術局 OSI基本参照モデル Open System InterconnectionISOで検討され、異なる設計思想や世代システムに通信を行うことを 目的に策定された アプリケーション層(HTTP • DHCP • SMTP • SNMP • FTP • Telnet • AFP)ゲートウェイ やり取りされたデータの意味内容を直接取り扱う。→アプリケーションプロセスのための共通アプリケーションサービスへ直接接続して実行するメールの規定を行うSMTP、Webアクセスの規定を行うHTTPなどそれぞれのアプリに対応したプロトコルとなる。 プレゼンテーション層(SMTP • SNMP • FTP • Telnet • AFP) データの表現形式を管理する。→文字コード、データ拡張子、データは圧縮されているか等。→送信部分と表現形式を切り離しておくことで、新しいデータ形式が現れても通信機器に影響を及ぼさずに対応できる セション層(SSL • NetBIOS • NWLink • DSI • ADSP • ZIP • ASP • PAP • 名前付きパイプ) 最終的な目的に合わせて、データの送受信管理を行う。例えば、チャットの様な対話型の通信とダウンロードの バースト コンピュータで、データを一度に大量に送ること 的な性質を持つ通信では、通信性質が異なる。セション層は、コネクション確立のタイミング管理やデータ転送のタイミング管理を行い、こうした差異を吸収する。 半二重 送信と受信を切り替えながら行う 通信や 全二重 同時に送受信を行う 通信の区分などもセション層で定義します。 トランスポート層(TCP • UDP • SPX • NetBEUI • RTMP • AURP • NBP • ATP • AEP) データ転送の制御を行う。ネットワーク層までで、相互通信できる枠組みが提供されてるが、通信の品質は保障されない。①そこで、伝送エラーの検出/再送を行い、ネットワークに流すデータ量を調節して、ネットワーク全体の スループット 単位時間あたりの処理能力。コンピュータが単位時間内に処理できる命令の数や通信回線の単位時間あたりの実効転送量などを意味する。 を維持する。②また、ネットワークアドレスはノードに対して付与されるが、 ノード ネットワークを構成する一つ一つの要素のこと。 内で動いているアプリケーションを特定する。 (TCPやUDP)TCP コネクション型通信 UDP コネクションレス型通信 リンク ノードとノードを結ぶ線。 データ形式 セグメント ネットワーク層(IP • ARP • RARP • ICMP • IPX • NetBEUI • DDP • AARP)ルータ エンドtoエンドでのデータのやりとりを規定する。ネットワーク層が存在することで、異なる組織間や遠距離でもデータ通信が可能となる。データリンクアドレス(MACアドレス等)はローカルエリア内だけで有効であるため、ネットワークを越えた通信を行う場合に、付け替える必要があるが、ネットワーク層で提供されるアドレスは、通信の最初から最後まで、一貫したアドレスである。データ形式 パケット データリンク層(ブリッジ、イーサネット • トークンリング • アークネット • PPP • フレームリレー) ブリッジ ネットワークにおいて、ケーブルを流れるデータを中継する機器。単純にすべての電気信号を再生するだけのリピータと違って、転送先のMACアドレスを見て適切なポートにのみ信号を中継する。EthernetとFDDIなど、媒体の異なるネットワーク間を中継する機能を持ったものもある 同じネットワークに接続された隣接ノード間での通信について、規定した層。元々、1対1通信を想定していたが、ブロードキャストドメイン内の通信もサポートするため、MACアドレスなどのアドレス管理も行う。HDLC手順やMACフレームの規格などが該当する。データ形式 フレーム 物理層(RS-232 • RS-422 • 電話線・UTP • ハブ • リピータ • 無線 • 光ケーブル) リピータ ネットワークにおいて、ケーブル上を流れる信号の再生および中継を行なう機器。 最下位に位置し、システムの物理的、電気的な性質を規定する。→0と1からなるデジタルデータをどのように電流の波形や電圧的な高低に割り付けるものかといったことやケーブルが満たすべき抵抗の要件、コネクタピンの形状を規定する 上位層 L4~L7。通信でやり取りされるデータの形などを規定する。 下位層 L1~L3。通信そのものを制御する。 プロトコルスイート プロトコルスイートシステムを構成するうえで、中核となるプロトコルの集合。例えば、インターネット・システムの場合は、この中核となるプロトコルの集合のことをTCP/IPプロトコル・スイートと呼ぶ。 階層化のメリット ①プロトコルの単機能化複雑になりがちな通信プロトコルをシンプルにでき、1つひとつの機能を小さく絞り込むことで、バグの少ない安定した 通信 スタック 本を机の上に積み上げるような構造になっており、データを入れるときは新しいデータが一番上に追加され、データを出すときは一番上にある新しいデータが優先して出てくる。 を開発できる。②交換の容易さ1つのネットワークシステムが単一のプロトコルで開発された場合、なんらかの技術変更でプロトコルが更新されると、システム全てを変更する必要があるプロトコルが規定する範囲を絞ることで,「ケーブルのみの交換」、「ルータのみの交換」が可能になっている【例】電話がプレゼンテーション層まで規定していたら、日本語を話すとき と英語を話すときで電話網を交換しなくてはいけない エンティティ OSI参照モデルにおいて、それぞれの階層をN層 と呼びN層に存在する通信機器などの実体をエンティティと呼ぶ。 サービス 異なる階層間でエンティティ同士が通信をする窓口(インターフェース)が必要であり、OSI参照モデルでは下位層がこれを提供し、この機能をサービスと呼ぶ。 コネクション N+1層のエンティティはほかのN+1層のテンティティと通信するために、 N層のサービスを利用する。たとえば、TCPを使用するには、下位のプロトコルなどが必要。 回線交換とパケット交換 回線交換 電話などの占有型の通信形態を回線交換と呼ぶ。回線交換は通信に先立ち、PBXなどの交換機によって回線を確保する。【例】電話中は、回線を二人で占有するから、占有型【長所】他ノードは、当該回線を利用できないため伝送品質が安定し高スループットを期待できるまた、セキュリティも向上する【短所】回線使用効率が悪い【まとめ】回線交換は、バースト的な通信が適しており、少量データを長時間送る通信は適してない。 パケット交換 データをパケット単位に区切り、各パケットに宛先情報(ヘッダ)を付与して共通通信路に送信する。ネットワーク内では、パケット交換機に蓄積され、ネットワークの状況に応じて、順次送出される。【長所】①耐障害性。通信路を固定しないため、ある通信路に障害が発生した場合でも迂回経路をとることが可能。②パケット多重。1本の回線の中で、別ノード宛てのパケットを割り込ませることができ、回線利用率が向上する。③異機種間接続性。パケット交換機がサポートしている通信プロトコルであれば、異なるプロトコル通信も可能。回線交換では、同一プロトコルのみ【まとめ】パケット交換は、少量のデータを長時間伝送する業務や異なる通信機器間での業務が適しており、バースト的な通信が適してない。 通信事業者 大きく回線交換サービスとパケット交換サービスを提供する 回線交換サービス 回線交換方式は、通話に先立って送信元ノードと宛先ノードの間に伝送路を確立する。電話------------交換機------交換機-------------電話 パケット交換サービス 送信中のデータを中継ノードが一度蓄積するタイプの通信をパケット交換と呼ぶ。パケット交換では、送信ノードから送出されたデータにはヘッダ情報が付けられ、一度ルータに蓄積される。ルータはパケットのヘッダ情報を参照して、そのつど最適な経路を判断する。送信中のデータが同じ宛先に複数あった場合、経路は異なる。【理由】①障害時、迂回経路による通信の可用性の向上②伝送路の有効活用。すべてのノードにP2Pしたら大変...③パケットを一度ルータに蓄積するため、異なる通信速度のネットワーク同士を接続することが可能。(ルータが通信速度に対応している必要性はありますが) 集中処理と分散処理 集中処理 1台の大型コンピュータに複数のクライアントを接続し、クライアントからの要求処理をすべてそのコンピュータで行う処理形態のこと。 分散処理 複数のコンピュータやプロセッサを利用して、分散して計算処理を行なうこと。1台のコンピュータに多数のプロセッサを搭載して処理する方法と、ネットワークを通じて複数のコンピュータを結びつけて処理する方法の2種類に大別できる。 ネットワーク形態 ピアツーピア型 blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 クライアントサーバ型 blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 3層クライアントサーバ型 blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 3層クライアントサーバだとSQLを発行するのはサーバ側のアプリケーションサーバだが、 2層クライアントサーバだとSQLを発行するのはクライアント(アプリケーションサーバがないから) MVCモデル blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 トラフィック理論 アーラン 呼量を表す単位。2回電話があるといっても、40秒通話2回 と 8時間通話2回では呼量は変わってくる。 呼 ネットワーク上に存在するサーバや通信機器に対する接続要求 発呼 要求する側の行為 着呼 要求される側の行為 呼損 発呼したのに、話し中で着呼できない状態。当然だけど、会社に電話の数が少なければ呼損率は高くなり、電話の数が多ければ(1000個)、呼損率は低くなる アーラン公式 アーラン = (呼数*平均時間) / 単位時間 電話機が1台あり、10分間に2回電話がかかってきました。 電話はどちらも3分話して切れました。その場合の呼量は何アーランでしょうか。 下記のアーランB式で、呼損率は求められるけど、普通は呼損率表より求める。 blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。 #!/usr/bin/perl #変数 $buf=""; $vipperbuf=""; $vipperdataflag=0; sub request_generate{ $key=$_[0]; $value=$_[1]; $vipper_buf=""; if($key eq "fafafa"){ #16進法に変換 $buf=sprintf "%02x", $value; print "$buf\n"; } if($key eq "dadada"){ if($value =~ m/default/){ $buf="XXXXXX\n"; print $buf; } else{ $buf=sprintf "%03x", $sum; print "$buf\n"; } } if($key eq "qwentry"){ $sum=0; for($i=0;$i 8;$i++){ $value1=substr($value,8-$i,1); $sum=$sum+$value1*(2**$i); } $buf=sprintf "%04x", $sum; print "$buf\n"; } if($key eq "ID"){ #16進法に変換 $buf=sprintf "%04x", $value; print "$buf\n"; } if($key eq "kikosama"){ if($value eq "default"){ $buf="YYYYYYYY"; } else{ $buf=sprintf "%04x", $value; } print "value=$value\n$buf\n"; } if($key eq "square"){ if($value eq "default"){ $buf="ZZZZZZZZ"; } else{ $buf=sprintf "%04x", $value; } print "$buf\n"; } ############### if($key eq "vipper Header"){ my @header = split( /,/, $value ); #vipperコード $buf=sprintf "%04x", $header[0]; print "vipperコード=$buf\n"; #vipperフラグ $sum=0; for($i=0;$i 8;$i++){ $value1=substr($header[1],8-$i,1); $sum=$sum+$value1*(2**$i); } $buf=sprintf "%04x", $sum; print "vipperフラグ=$buf\n"; if($header[2] =~ m/default/){ $buf="JJJJJJ\n"; print "vipper長さ=$buf"; } else{ $buf=sprintf "%03x", $sum; print "vipper長さ=$buf\n"; } #vipperflagのビットがたっているとき $venderflag=substr($header[1],0,1); if($venderflag eq "1") { #16進法に変換 $buf=sprintf "%04x", $header[3]; } if($vipperdataflag==0 | $vipperdataflag==2) { $vipperdataflag=1; } else{ #エラー } } if($key eq "st"){ my @nums = unpack "C*", $value ; foreach my $num (@nums) { $num16=sprintf "%02x", $num; print "$num16\n"; $vipper_buf=$vipper_buf.$num16; } if($vipperdataflag==1) { $vipperdataflag=2; } else{ #エラー } } if($vipperdataflag==2) { #$vipper_len=strlen($vipper_buf); #JJJJJをこの長さで置換 #[4byte] - [$vipper_buf(bit)*8] / 4byte #上の計算式分0x00埋めする } ############### } open(FIN,"./test.cfg")||enderr("ERROR test.cfg $!"); while( FIN ) { $line = $_; #キーとデータを分割 my @tests = split(/=/, $line,2); print "$tests[0]=$tests[1]"; request_generate($tests[0],$tests[1]); } close(FIN);
https://w.atwiki.jp/linuxjapanwiki/pages/206.html
AquaLightX
https://w.atwiki.jp/shirayuu/pages/49.html
Ubuntu 10.04 LTS デスクトップ版 日本語 Remix CD での個人的な設定。5月21日現在インストール時点です。 以前のバージョンからアップデートする人はリリースノートを参照にしてインストールするほうがトラブルが少ないと思います。 /homeパーティションを個別に設定している場合にインストーラがクラッシュする影響のため、私の場合はデュアルブートな上/home を別のパーティションに収めていたため、誤っての/homeをフォーマットしてしまいました。そのため、/home パーティションはしっかりとバックアップを取っておいて/home はフォーマットする方がスムーズにインストールを進めることができると思います。 特に重要な問題はIntel 8xx Xのフリーズ/クラッシュという問題です。これは注意深く読まなければなりません。 また、Ubuntu日本語フォーラムも参照するするとより便利に活用できるかと思います。ここに書いてある情報より正確でしょうし、説明も丁寧です。 参考サイト [#n6207a92] システムアップデート [#t3369426] 便利なパッケージ群 [#rf0e1dfd] スーパーユーザの作成 [#h6fb3f0e]sudo 使用時にパスワード入力しなくても実行できるようにする [#xcabe67f] ctrl+alt+backspace を有効にする。 [#yf73fb33]setxkbmap を使う。 [#h3e8b2e6] /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi の内容を変更する [#m97e7463] Gnome パネルからの設定 [#q4dd6857] コンソールを快適にする [#n6d1b7e6]コンソールを快適にするためのパッケージのインストール [#f8611bc3] フォントのインストール [#i03b2041]M+ フォント (ビットマップ) のインストール [#r6c1760a] IPA フォントのインストール [#k9ff5b47] VL ゴシックフォントのインストール [#gdfe59ce] M+IPA フォント [#z415ba7c] mlterm の設定 [#x8802697] キーボードの配列を英語配列に風に [#s9b2f9f5] zsh のインストール [#r606196a]デフォルトのシェルを変更 [#tf606bb5] screen のインストール [#d157944f] EUC-JP、Shift-JIS 環境の追加 [#qc886a19] テキストログインに変更する [#cdef1664] 参考サイト [#n6207a92] Ubuntu Linux 10.04リリースノート X/Bugs/Lucidi8xxFreezes システムアップデート [#t3369426] 最初にするべきことはやっぱり、アップデートでしょうか? $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade 便利なパッケージ群 [#rf0e1dfd] ubuntu からインストールすると便利なまたは推奨されるパッケージが以下のコマンドで一括でインストールされます。 $ sudo apt-get install ubuntu-restricted-extras 様々なパッケージがインストールされます。 スーパーユーザの作成 [#h6fb3f0e] 以下の手順でスーパーユーザのパスワードを設定することによりスーパユーザを作成します。 $ sudo passwd 以下のコマンドいずれかによりスーパーユーザになることができます。 $ sudo -s $ sudo -i sudo 使用時にパスワード入力しなくても実行できるようにする [#xcabe67f] $ sudo visudo とvisudo を起動して次の文字を追記する ユーザ名 ALL=(ALL) NOPASSWD ALL たとえば、 ユーザ名がhoge なら hoge ALL=(ALL) NOPASSWD ALL とします(最終行に追記)。 ctrl+alt+backspace を有効にする。 [#yf73fb33] ubuntu 9.04 から、初期設定では ctrl+alt+backspace で X を落とす方法が無効となっています。 有効にする方法が Ubuntu Wiki に記載されていました。 https //wiki.ubuntu.com/X/Config/DontZap?action=show redirect=DontZap setxkbmap を使う。 [#h3e8b2e6] コンソール画面にて以下コマンドを打つと有効になります。 $ setxkbmap -option terminate ctrl_alt_bksp ~/.xinitrc,~/.xssession,/etc/gdm/Xsession などに追記しておくと有効になるのではないでしょうか。 ## 私は、~/.xinitrc にこの文面を挿入することにより有効にしています。 /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi の内容を変更する [#m97e7463] ## この方法を試してみたのですが、有効になりませんでした。上手く行かなかったということは間違っている可能性もあります。 例えば、 $ sudo gedit /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi などで、/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi を変更するのですが、注意するところは plugin_code is not found. please feed back @wiki. ;セッションに書き込むことです。 おそらく、 match key="info.capabilities" contains="input.keys" セッションの初期状態は以下のようになっているかと思います。 match key="info.capabilities" contains="input.keys" !-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -- merge key="input.x11_driver" type="string" keyboard /merge match key="/org/freedesktop/Hal/devices/computer system.kernel.name" string="Linux" merge key="input.x11_driver" type="string" evdev /merge /match /match この内容をおそらく次のように変更すると有効になります。 match key="info.capabilities" contains="input.keys" !-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). -- merge key="input.x11_driver" type="string" keyboard /merge merge key="input.xkb.options" type="string" terminate ctrl_alt_bksp /merge match key="/org/freedesktop/Hal/devices/computer system.kernel.name" string="Linux" merge key="input.x11_driver" type="string" evdev /merge /match /match ## Thinkpad のトラックポインタのスクロールを有効にするときもそうでしたが /usr/share/hal/ の内容を変更するものはどうすれば上手く有効化するのかよくわかりません。 Gnome パネルからの設定 [#q4dd6857] Gnome パネル設定することができます。これは、gnome 起動中のみ有効な手段です(gnome-setting-daemon を起動していても有効)。そして、最もわかりやすい方法かと思います。 ubuntu 9.10 Release notes に記述されました。 http //www.ubuntu.com/getubuntu/releasenotes/910#Enabling%20Ctrl-Alt-Backspace%20for%20Ubuntu ubuntu のパネルから以下の手順を踏めば有効になります。 システム→設定→キーボードを選ぶ レイアウトタブを選択 レイアウトのオプションボタンをクリック Key sequence to kill the X server (上から八番目) を選ぶ Control + Alt + Backspace にチェックする。 コンソールを快適にする [#n6d1b7e6] コンソールの入力が快適でなければファイル編集などが非常にやりにくいのでここら辺を改善します。 コンソールを快適にするためのパッケージのインストール [#f8611bc3] パッケージ コンソール mlterm mlterm-im-scim エディタ vim emacs マニュアル (manpage) manpages-ja manpages-ja-dev ページャー lv フィルター nkf シェル zsh その他 screen [[mlterm]] は 初期コンソールのより高速で表示できるコンソール $ sudo apt-get install mlterm mlterm-im-scim mlterm-tools vim,emacs は 最初から入ってるvi やgedit より高度な編集ができるエディタ $ sudo apt-get install vim $ sudo apt-get install emacs ここでデフォルトで起動するページャーも自分の好みのものに変更します。 update-alternatives コマンドでデフォルトのエディタを変えます。 デフォルトのエディタが何であるかは $ editor ファイル で確認できます。 例えばこれは、visudo コマンドに使用されるエディタなどに影響してきます。 このデフォルトのエディタを変更するために以下のコマンドを使用して次のように変更します。 $ sudo update-alternatives --config editor There are 6 choices for the alternative editor (providing /usr/bin/editor). Selection Path 優 Status ------------------------------------------------------------ 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/emacs22 0 manual mode 4 /usr/bin/emacs23 0 manual mode * 5 /usr/bin/vim.basic 30 manual mode 6 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number 5 ubuntu 9.04 では、この辺も日本語で表示されていたのですが、2009年11月9日現在では英語で表示されています。 意味合いとしては、ubuntu 9.04 の項目を参照していただければ分かるかと思いますが、デフォルトのエディタをどのエディタにするのかを数字で選択しています。 また、すべてのデフォルト設定(関連付け見たいな感じ?)を変更したいときは $ sudo update-alternatives --all とタイプするとすべてのデフォルト設定を変更できます(ただし選択できるもののみ)。 manpages は、各コマンドのマニュアルmanpages-ja その日本語版 $ sudo apt-get install manpages-ja manpages-ja-dev lv は、less に比べて文字コード関係をうまく処理してくれるページャー $ sudo apt-get install lv ページャーもlv に変更してしまいましょう。 $ sudo update-alternatices --config pager nkf は、文字コード関係をうまく表示してくるためのフィルタ $ sudo apt-get install nkf さて、manpage をインストールしたことにより各コマンド(パッケージ) のマニュアルを 見ることができるようになりました。実際には以下のようなコマンドによって閲覧できます。 $ man command たとえば $ man ls とすればマニュアルを見ることができます。 どうやって終わればいいんだと思った人は なんどか 'ESC'' を押した後、 q (小文字のq) を押して終了させてください。 フォントのインストール [#i03b2041] 主に mlterm のためですがいくつかフォントをインストールします。 M+ フォント (ビットマップ) のインストール [#r6c1760a] M+(ビットマップ) フォントのインストールは以下のとおりとなります。 $ sudo apt-get install xfonts-mplus M+ ビットマップフォントを認識させるために以下のコマンドで X に フォントを認識させます。 $ sudo xset fp rehash また、M+ ビットマップフォントが X に認識されているかどうかを確認するには以下のコマンドで確認できます。 $ xlsfonts | grep mplus IPA フォントのインストール [#k9ff5b47] IPA フォント、 ipaモナフォントのインストールは以下のとおり。 $ sudo apt-get install otf-ipafont otf-ipaexfont ttf-ipamonafont IPA フォントはライセンスの問題上、最初からインストールされておらず、代わりに Takao フォントがインストールされています( Takaoフォントをリリースしました)。 Takao フォントは ttf フォントなので IPAフォントシリーズは OTF フォントでインストールしました(TTF版も存在します)。 VL ゴシックフォントのインストール [#gdfe59ce] $ sudo apt-get install ttf-vlgothic M+IPA フォント [#z415ba7c] M+IPA フォントをインストールされる前にM+IPAフォントを格納するディレクトリを作成しておく $ sudo mkdir -p /usr/share/fonts/truetype/mplusipa M+IPA フォントのインストールはネット上からファイルを持ってくる必要があるので次の手順を踏みます。 $ mkdir tmp $ sudo mkdir -vp /usr/share/fonts/truetype/mplusipa $ cd tmp $ wget http //jaist.dl.sourceforge.jp/mix-mplus-ipa/25997/mixfont-mplus-ipa-TrueType-20060520p1.tar.bz2 $ tar jvxf mixfont-mplus-ipa-TrueType-20060520p1.tar.bz2 $ cd mixfont-mplus-ipa-TrueType-20060520p1/opfc-ModuleHP-1.1.1_withIPAFonts_and_Mplus/fonts $ sudo cp -v M+*.ttf /usr/share/fonts/truetype/mplusipa 目的のフォントを移動したところで、次にフォントをシステムに認識させます。 現在インストールされているフォント(おそらく、TrueType と OpenType)は、次のコマンドで確認できます。 $ fc-list 目的のインストールを認識させるために $ cd /usr/share/fonts/truetype $ sudo fc-cache -v -f とします。 正しく認識された確認するために $ fc-list | grep M+ として、表示されるか確認します。 mlterm の設定 [#x8802697] mlterm の詳しいところは mlterm を参考にしてください。 私は フォントを M+フォント(ビットマップ) にしています。 配色関係を適切なものにすればかなり快適になると思います。 キーボードの配列を英語配列に風に [#s9b2f9f5] 私は、普段のキーボードを HHKB 英語配列を使っています。 しかし、ubuntu をインストールしているパソコンは日本語配列なので 英語配列風にして快適にタイピングできるようにキーマップを変えています。 以下のコマンドでほぼ英語配列へと変更することができます。 $ setxkbmap -model us -layout us しかし、] キーが\(バックスラッシュ) だったりと不満が残る場合があります。 そのときは、xmodmap コマンドを使って自分でキー配列を変更できるので、 xmodmap を使ってさらに快適なものにします。 xmodmap によって変更するのは以下の点です。 コントロールキーと Caps キーを取り替える。 Caps キーとコントロールキーを入れ替える これにより、A の横にコントロールキーが来るのでコントロールが押しやすくなる。 バックシュラッシュやパーティカルバーを正しい位置へ変更する。¥(エンマーク) の位置に持ってきます ] を Enter キーに変更する そのために、以下のファイルを作成します。 .xmodmaprc というファイルに記述することとします。 これをホームディレクトリに作成するので $ pwd /home/ ユーザ名 # 現在の位置がホームディレクトリか確認 $ vim .xmodmaprc # vim は使いやすいエディタに適時変える .xmodmaprc の内容 ! .xmodmapprc ! Keymap US chenge ! Swap Caps Control remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L keycode 132 = backslash bar keycode 51 = Return 作成をができれば $ xmodmap .xmodmaprc とコマンドを打つことにより反映されます。 それぞれのキーコードが分からない人は xev コマンドを使用することにより確認できます。 zsh のインストール [#r606196a] bash より補間機能が強力な[[zsh]] をインストールする。 $ sudo apt-get install zsh zsh の設定は、~/.zshrc に記述するのですが設定が膨大なので設定は割愛します。 強力な補間機能を有効にするために以下の一文を加えておくと便利です。 autoload -U compinit compinit デフォルトのシェルを変更 [#tf606bb5] 初期起動時のシェルを変更するためには、chsh コマンドで変更できます。 そのためにまず、変更するシェルの場所を把握しておく知る必要があります。 そのため、which コマンドで $ which zsh /usr/bin/zsh このように場所を把握します。 そして、chsh コマンドで $ chsh -s /usr/bin/zsh で変更します。 screen のインストール [#d157944f] $ sudo apt-get install screen EUC-JP、Shift-JIS 環境の追加 [#qc886a19] /var/lib/locales/supported.d/ja を以下のようにします。 # sudo -s # vim /var/lib/locales/supported.d/ja ## /var/lib/locales/supported.d/ja の内容 ja_JP.UTF-8 UTF-8 ja_JP.EUC-JP EUC-JP ja_JP.SHIFT-JIS SHIFT-JIS その後、次のコマンドで、/var/lib/locales/supported.d/local にも設定を反映させる。 # tail -2 /var/lib/locales/supported.d/ja /var/lib/locales/supported.d/local 次に、以下のコマンドを実行して文字コード環境を認識させます。 # locale-gen そして、次のコマンドで正しく認識されたのかを確認してください。 $ locale -a | grep ja 正しく認識されていると以下の文面が見つかると思います ja_JP.eucjp # EUC-JP ja_JP.shiftjis # Shift-jis ja_JP.utf8 # UTF-8 テキストログインに変更する [#cdef1664] /etc/init/gdm.conf を削除(適当な場所に移動)するとテキストログインに変更しました。 $ sudo mv /etc/init/gdm.conf /etc/init/gdm.conf.kill この方法で、テキストログインをキャンセルすることができましたがもっとスマートな方法があると思う。
https://w.atwiki.jp/pspprogram/pages/67.html
開発環境/linux/Ubuntu-9.04 ubuntu-ja-9.04-desktop-i386(VMware Workstation v6.5.3上で確認) ubuntu-8.10の記事を真似させて頂きます。 VMware Toolsはインストール済みです。 (以前のxorg-x11-drv-vmmouseドライバーにバグがあるため、v6.5.3以降のVMware Toolsを推奨します。) 作業用フォルダが必要な人は mkdir psptmp という感じで作っておいて下さい。 psptoolchainをインストール・使用するのに 必要なソフトウェアをインストールします。次のコマンドを実行します。 sudo apt-get install build-essential libtool autoconf automake bison flex libncurses5-dev libreadline-dev libusb-dev texinfo libmpfr-dev libgmp3-dev subversion doxygen gcc-4.2 g++-4.2 psptoolchainのインストールの前に 環境変数を設定する必要があったりなかったり。標準エディタで編集する場合は gedit ~/.bashrc 私は~/.bashrc の最後の方に PSPDEV=/usr/local/pspdev export PATH="$PATH $PSPDEV/bin" と追加しました。 ~/.bashrcを反映させるためにターミナル上で source ~/.bashrc と入力してください。 psptoolchainのダウンロード 適当な場所にディレクトリを作り、以下のコマンドを実行します。 svn checkout svn //svn.ps2dev.org/psp/trunk/psptoolchain psptoolchainのインストール cd psptoolchain sudo ./toolchain-sudo.sh インストールができているか確認。 psp-gcc -v 正しくインストールされていれば、 Using built-in specs. Target psp コンフィグオプション ../configure --prefix=/usr/local/pspdev --target=psp --enable-languages=c,c++ --with-newlib --with-gmp --with-mpfr --enable-cxx-flags=-G0 スレッドモデル single gcc version 4.3.2 (GCC) と表示されます。 psplibrariesのダウンロード 適当な場所に保存します。 svn checkout svn //svn.ps2dev.org/psp/trunk/psplibraries psplibrariesのインストール 次のコマンドで一発インストール・・・ cd psplibraries sudo ./libraries-sudo.sh できなかった。 003-freetype.sh 実行中のエラーの解決策 PSP自作ソフト開発スレ ver.8 642-643より 次のURLから http //git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD config.guessを適当なフォルダにダウンロード chmod +x ./config.guess ./config.guess 出力結果をメモっておく。ちなみに私は i686-pc-linux-gnu と出力された。 psplibraries/scripts/003-freetype.sh の 18行目あたりを書き換える LDFLAGS="-L$(psp-config --pspsdk-path)/lib -lc -lpspuser" ./configure --host psp --prefix=$(psp-config --psp-prefix) || { exit 1; } こいつを 下のように書き換える LDFLAGS="-L$(psp-config --pspsdk-path)/lib -lc -lpspuser" ./configure --build i686-pc-linux-gnu --host psp --prefix=$(psp-config --psp-prefix) || { exit 1; } これでコンパイルは通りました。 後述 psptoolchain リジョンは2473 psplibraries リジョンは2473 でした。間違いがあれば加筆・訂正お願いします。
https://w.atwiki.jp/linuxjapanwiki/pages/235.html
AquaLightOS
https://w.atwiki.jp/linux2ch/pages/92.html
X11 ウィンドウマネージャ X11 ウィンドウマネージャ GNUstep Blackbox CDE Enlightenment Fluxbox FVWM IceWM JWM Sawfish twm Window Maker qvwm スクリーンショット 2ch 関連スレッド GNUstep GNUstep FAQ GNUstepアプリケーションをインストールしようとすると、install-sh.inとかがないと言われます。 GDNC鯖と通信できないとか言われます。 /etc/profileを読んでくれないので、lsに色がつかなかったりします。 GNUstepアプリで日本語表示/入力ができない WindowMakerでkinput2がなんかおかしい WPrefsなどのフォント Blackbox Blackbox CDE The Open Group -- CDE Common Desktop Environment (Wikipedia日本語版) Enlightenment Enlightenment Fluxbox fluxbox.org Fluxbox-wiki Fluxbox Themes FVWM The Official FVWM Home Page The Official FVWM Themes Home Page IceWM IceWM IceWM Theme Creation Howto JWM JWM JWM Configuration Sawfish Official Sawfish Wiki sawfish 活用ガイド Sawfishのテーマを変更したい (ITMedia) twm twm 日本語manページ Window Maker Window Maker Window Maker完全FAQ qvwm qvwm スクリーンショット Linuxデスクトップ画像スレ まとめサイト 2ch 関連スレッド Linux板 集まれ!!WindowManager http //pc11.2ch.net/test/read.cgi/linux/1030639033/ LinuxでCDE http //pc11.2ch.net/test/read.cgi/linux/1042759409/ FVWM スレッド http //pc11.2ch.net/test/read.cgi/linux/1066235740/ タイル型WM (Ion, wmii, awesome, xmonad, etc.) http //pc11.2ch.net/test/read.cgi/linux/1205930755/ Unix板 FluxBoxを語ろう http //pc12.2ch.net/test/read.cgi/unix/1048906733/ おまえらの.fvwm2rc拝見させていただけませんか? http //pc12.2ch.net/test/read.cgi/unix/1005660445/ 軽くてきれい!IceWM使おうよ http //pc12.2ch.net/test/read.cgi/unix/1074783168/ Sawfish単独使い倒しスレ http //pc12.2ch.net/test/read.cgi/unix/993629154/ 【ウホッ!】twmを語ろう!!【いいWM】 http //pc12.2ch.net/test/read.cgi/unix/1061122459/ 最強のWindow ManagerのWindow Makerを語れ。 http //pc12.2ch.net/test/read.cgi/unix/998272137/
https://w.atwiki.jp/r8610/
このwikiについて eMARKで売られているMini Linuxサーバについて情報をまとめました。 日本ではほとんど情報がみつかりませんが、海外では数社からOEMで同ハードウェアが販売されており、いくつかの掲示板で解析情報がみつかります。 あまり聞いたことのないCPUが使われていますが、じつはi486互換命令セットを持つSystem-On-a-Chipです。 非常に省電力で、ワットチェッカーで計測したところ2.5インチHDDを装着した状態でも3w~5w程度です。 x86のPCで動くlinuxとバイナリ互換なので、母艦PCで普通にmake テストが可能です。 ただし、このチップはコプロセッサが載ってないので用途によっては非常に遅いです。 (なんと44.33 BogoMIPS T_T) ハードウェアスペック CPU RDC R8610(i486互換) メインメモリ SDRAM 32MB フラッシュメモリ 4MB(ファームウェア用) HDD ATA2.5インチHDD内蔵可能 有線LAN 10/100Mbps Ethernet 1ポート 無線LAN IEEE802.11g/b 2.4GHz USB USB2.0ポート×2 電源 DC 5V/ max 3A サイズ 162mm×92mm×26mm ソフトウェアスペック OS linux-2.4 DHCP Client Mode, Server Mode, Auto, Static 無線LAN Mode Client Mode, AP Mode, WDS, Hybrid NAS機能 samba, ftp, UPnP ファイルシステム FAT, FAT32, ext2 対応USB機器 マスストレージ
https://w.atwiki.jp/linux2ch/pages/16.html
Linuxに関する一般的なFAQ Linuxに関する一般的なFAQ Linuxって何? "Linux" の読み方は? Linux って無料なの? Linux を入手するには? Windows で Linux を動かすには? Linux のシェアを知りたい ペンギンがよく登場するのはなぜ? Linux って商標登録されてるの? Linuxって何? http //ja.wikipedia.org/wiki/Linux "Linux" の読み方は? カーネル原作者Linus Torvalds氏によれば「誰がどういう風に読んでも良い」とのこと。 リナックスという読み方が世間に広がった理由の一つとして、Linux 専門誌の「Linux Japan]」(現在休刊)が表紙に「リナックスジャパン」と読み仮名を入れたからという説がある。読み仮名を入れたのは、雑誌の取次ぎから「読み方がわからない」と苦情があったからだそうで。 http //oku.edu.mie-u.ac.jp/~okumura/linux/pronunciation.html http //ja.wikipedia.org/wiki/Linux#.22Linux.22.E3.81.AE.E8.AA.AD.E3.81.BF.E6.96.B9 Linux って無料なの? Kernel.org でダウンロード提供されているオリジナルの Linux カーネルは無料。ただし、LinuxカーネルをベースとしたOSやシステムが必ずしも無料配布されているわけではない。 LinuxはOSIのオープンソースに準拠したフリーソフトウェアとしてGPLライセンスで配布されている。GPLでは同一ライセンスでの改変や再配布を許可しているので、Linuxカーネルを使って作ったものを配布することは誰にも禁止されない。その際に料金をとっても構わない。 この場合のフリーは入手するための価格のことでなく、入手したプログラム(とそれを動かすユーザーのコンピュータ)が自由に操作できることを指す。 具体的には、プログラムを好きなように実行すること、実行されるソースコードの内容を知って変えること、コピーや再配布を行うこと、派生ソフトウェアを作成・配布することが自由にできることのこと。 フリーソフトウェアは、GNUを提供しているFSFの造語である。 たとえば Linux ディストリビューションの1つ Red Hat Enterprise Linux は、Red Hat のロゴが入った公式のバイナリを入手しサポートを得るためには有料のサブスクリプション登録が必要。 ただし RHEL は GPL の元で自由に使えるように SRPM でソースが提供されている。中に含まれるオープンソースコードから Red Hat 商標を取り払ったクローンも存在している(SRPM なのでビルド自体は非常に簡単)。この場合、当然 Red Hat 公式のサポートを得ることはできないが、GPLとかRed HatがつけているEULAなどのライセンス違反ではない。(この場合はむしろ、プログラムに商標をつけたり、ついているものを取り払って新たに配布したりということが自由にできるのはGPLのおかげ。またRed HatはソフトをGPL系のライセンスで公開しており、LinuxカーネルやGNUツールチェインの開発、仮想化・クラウド関連のソフトウェアなどでコミュニティに貢献している。) 以下は参考リンク。 http //www.opensource.jp/osd/osd-japanese.html Linux を入手するには? Linux の公式カーネルは http //kernel.org/ からダウンロード可。ただしここにあるのはカーネルだけで、OSを形作るいろいろと便利なソフトウェアは含まれていません。 Linux カーネルと、Linux カーネルで動かせるユーザレベルのソフトウェアから構成されたLinuxの実動作環境をディストリビューション(配布版)という。ディストリビューションは誰でも作成できるが、そのためディストリビューションと一言で言ってもいろんな状態で配布されている。使用にあたっては、それぞれのWebサイト (Debian Project、Fedora Project、Red Hat、Novell、OpenSUSE、Vine Linux等) からダウンロード版を入手するか、企業によるサポートが必要ならパッケージ版を買って動かす。 OpenSUSE と Novell SUSE は内容的に同じでリリースサイクルも同等。 FC と RHEL はリリースサイクルとか目指すところが大きく離れているが、一応どちらも Red Hat に支持されているので定期的にアップデートは来る。CentOS なんかだと、RHEL と中身は同等でもアップデートの追随が遅れることもある。 そもそも目指すべき製品としての形が大きく違うので、それぞれのディストロを使ってみて肌で触れるのが良いかと。 数メガ〜数ギガバイトのファイルのダウンロードに長い間待たされるのが嫌なら、雑誌にダウンロードしたファイルを焼いただけの CD や DVD が付属してることもある。で、ついでにインストールまでした PC も陰で売られていたりする。(一覧はPreinstallPCsにあります) Windows で Linux を動かすには? OS は CPU を直接操作する (操作している) プログラムなので普通はできない。 i386 互換 CPU をソフトウェアでエミュレートする PC エミュレータ(VMware/VirtualPC/Bochs/QEMU/他)とか、Windows で動くように改造した coLinux とかを使えば、動作スピードや設定の点で少々難はあっても動かすことは可能。 ユーザーレベルのプログラム(コマンド/シェルとか)が動くだけで良いのなら、Windows API に UNIX の API を被せた Cygwin (Cygnus) とかをどうぞ。 VirtualPC Linux のシェアを知りたい Linux はユーザーの元で好き勝手にコピーしたり再配布したりできるので全体での流通をどこかが一括で把握することは *不可能* だけど、パッケージ版やサーバーとして公開されているマシンの OS 情報から調査した参考資料はある。 Linuxメモ:サーバ・OSのシェア・市場動向 Operating System Sucks-Rules-O-Meter The Linux Counter ペンギンがよく登場するのはなぜ? Linuxカーネル2.x のオフィシャルロゴ・マスコットとしてペンギンが採用されたため。(カーネル1.xはカモメ) 有名なのは Tux というペンギン。Larry Ewing 氏が1996年に描いたもの(らしい)。 Larry 氏のページ http //www.isc.tamu.edu/~lewing/linux/ タックス - Wikipedia http //ja.wikipedia.org/wiki/%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B9 Linux カーネルベースの TUX というWebサーバーもある。 Linux って商標登録されてるの? コンピュータ・OSの分野では商標登録済み。 詳しくは http //www.itmedia.co.jp/news/articles/0509/06/news079.html とか参照。
https://w.atwiki.jp/kuni/pages/5.html
- GRUB ネットワークブート対応のGRUB FDを作成する Red HatのkickstartがFD 1枚で開始できるように、ネットワークブート可能なGRUB FDを作成しました。 Red Hat Enterprise Linux ES 3にインストールされるGRUBは、ネットワークブートに対応していないため、RPMパッケージをSRPMから作り直す必要があります。 まずは、SRPMをインストールします。 その後、/usr/src/redhat/SPECSディレクトリに移動し、 specファイルを修正します。 後は、RPMパッケージをrpmbuildコマンドで再作成するだけ。 できあがったRPMをインストールして、インストールされたファイルで GRUB FDを作れば、完了です。 名前 コメント
https://w.atwiki.jp/aerocats/pages/52.html
標準Linuxの/usr/local/sbin/内にある。 開発用Linuxに必要な材料をHDDに展開する役割を担う。 また、ユーザーの意思次第でHDDブートの設定も行う。 動作内容 スクリプト スクリプト詳細HDDブートの準備 U-Boot環境変数の設定 動作内容 /mnt/mtdにhddrootfs.tar.gz、uImage.buffaloがあるかどうかを確認して以下を実行。 ある場合 /mnt/bootディレクトリを作成し、/dev/sda1をext3形式でマウントして、そこにuImage.buffaloをコピーする。 /mnt/rootfsディレクトリを作成し、/dev/sda2をxfs形式でマウントして、そこにhddrootfs.tar.gzを展開する。 デバイス マウントポイント マウント形式 /dev/sda1 /mnt/boot ext3 /dev/sda2 /mnt/rootfs xfs /usr/local/bin/kuro_libを/mnt/rootfs/usr/local/binにコピーする。 ChangeMyUbootEnvがあればU-Boot環境変数を書き換える。なければそのまま終了する。 ない場合 エラー終了させる。 スクリプト #!/bin/sh . /usr/local/bin/kuro_lib TMP_BOOT_MPT=/mnt/boot TMP_ROOT_MPT=/mnt/rootfs HDD_ROOTFS=${MTD_MPT}/hddrootfs.tar.gz UIMAGE=${MTD_MPT}/uImage.buffalo CHANGE_UBOOT_ENV=${MTD_MPT}/ChangeMyUbootEnv # check material if [ -e ${HDD_ROOTFS} -a -e ${UIMAGE} ] ; then # I believe sda is already fdisked and format is finished. # That's a KUROBOX quality....www # mkdir ${TMP_BOOT_MPT} mkdir ${TMP_ROOT_MPT} mount -t ext3 ${DISK1_DEV}1 ${TMP_BOOT_MPT} [ $? -ne 0 ] exit 1 mount -t xfs ${DISK1_DEV}2 ${TMP_ROOT_MPT} [ $? -ne 0 ] exit 1 cp -afp ${UIMAGE} ${TMP_BOOT_MPT}/ tar -zxvf ${HDD_ROOTFS} -C ${TMP_ROOT_MPT}/ cp -f /usr/local/bin/kuro_lib ${TMP_ROOT_MPT}/usr/local/bin/ # OK! prepare of hdd is finished. # change u-boot environment or not ? if [ -e ${CHANGE_UBOOT_ENV} ] ; then nvram -c set default_kernel_addr 0x00100000 nvram -c set bootargs_base 'console=ttyS0,115200' nvram -c set bootargs_root 'root=/dev/sda2 rw panic=5' nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09' nvram -c set bootcmd 'ide reset; ext2load ide 0 1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)' nvram -c set nand_boot no fi # OK! u-boot environment is changed. else exit 1 fi スクリプト詳細 ブロックごとに見てみる。 #!/bin/sh . /usr/local/bin/kuro_lib シェルにshを指定して、/usr/local/bin/kuro_libをサブシェルで実行している。 このkuro_lib内の MTD_MPT変数(=/mnt/mtd) DISK1_DEV変数(=/dev/sda) を使用するためだ。 TMP_BOOT_MPT=/mnt/boot TMP_ROOT_MPT=/mnt/rootfs HDD_ROOTFS=${MTD_MPT}/hddrootfs.tar.gz UIMAGE=${MTD_MPT}/uImage.buffalo CHANGE_UBOOT_ENV=${MTD_MPT}/ChangeMyUbootEnv TMP_BOOT_MPTという変数を用意し、そこに/mnt/bootを代入。 TMP_ROOT_MPTという変数を用意し、そこに/mnt/rootfsを代入。 HDD_ROOTFSという変数を用意し、そこに/mnt/mtd/hddrootfs.tar.gzを代入。 UIMAGEという変数を用意し、そこに/mnt/mtd/uImage.buffaloを代入。 CHANGE_UBOOT_ENVという変数を用意し、そこに/mnt/mtd/ChangeMyUbootEnvを代入。 # check material 必要材料のチェック。 HDDブートの準備 if [ -e ${HDD_ROOTFS} -a -e ${UIMAGE} ] ; then /mnt/mtd/hddrootfs.tar.gzが存在し、かつ/mnt/mtd/uImage.buffaloも存在するならば次を実行する。 # I believe sda is already fdisked and format is finished. # That's a KUROBOX quality....www # 「sdaはもうfdiskされフォーマットもされていると信じています。これが玄箱クオリティです。」とコメントされている。 mkdir ${TMP_BOOT_MPT} mkdir ${TMP_ROOT_MPT} mkdirコマンド?で/mnt/bootと/mnt/rootfsというディレクトリを作成している。 mount -t ext3 ${DISK1_DEV}1 ${TMP_BOOT_MPT} mountコマンドで、/dev/sda1をext3形式で/mnt/bootにマウントしている。 [ $? -ne 0 ] exit 1 そのmountコマンド実行時に終了ステータスが「0」(つまり正常)でなければ、終了ステータス「1」(つまり異常)を設定しスクリプトを終了する。 mount -t xfs ${DISK1_DEV}2 ${TMP_ROOT_MPT} mountコマンドで、/dev/sda2をxfs形式で/mnt/rootfsにマウントしている。 [ $? -ne 0 ] exit 1 そのmountコマンド実行時に終了ステータスが「0」(つまり正常)でなければ、終了ステータス「1」(つまり異常)を設定しスクリプトを終了する。 cp -afp ${UIMAGE} ${TMP_BOOT_MPT}/ cpコマンド?で/mnt/mtd/uImage.buffaloを/mnt/boot/にコピーしている。 「-afp」オプションは、「-a」で「できるだけ属性や構造を保持する」、「-f」で「同名ファイルを警告せずに上書きする」、「-p」で「パーミッションやタイムスタンプを保持したままコピー」という意味だ。 tar -zxvf ${HDD_ROOTFS} -C ${TMP_ROOT_MPT}/ tarコマンドで/mnt/mtd/hddrootfs.tar.gzを/mnt/rootfs/に展開している。 「-zxvf」オプションは、「-z」で「アーカイブ展開と同時にzip形式での解凍も行う(拡張子:.tar.gz)」、「-x」で「アーカイブからファイル・ディレクトリを取り出す」、「-v」で「処理の詳細を表示する」、「-f」で「アーカイブファイルのファイル名/デバイスファイル名を指定する」という意味だ。 cp -f /usr/local/bin/kuro_lib ${TMP_ROOT_MPT}/usr/local/bin/ ふたたびcpコマンド?で/usr/local/bin/kuro_libを/mnt/rootfs/usr/local/bin/に「-f」オプション(同名ファイルを警告せずに上書きする)でコピーしている。 # OK! prepare of hdd is finished. HDDの準備は完了しました、とのコメント。 # change u-boot environment or not ? U-Bootの環境も変更するかどうか、というコメント。ここからU-Bootの環境変数の変更処理だ。 U-Boot環境変数の設定 if [ -e ${CHANGE_UBOOT_ENV} ] ; then /mnt/mtd/ChangeMyUbootEnvが存在すれば次を実行。 nvram -c set default_kernel_addr 0x00100000 nvram -c set bootargs_base 'console=ttyS0,115200' nvram -c set bootargs_root 'root=/dev/sda2 rw panic=5' nvram -c set bootargs 'console=ttyS0,115200 root=/dev/sda2 rw panic=5 BOOTVER=1.09' nvram -c set bootcmd 'ide reset; ext2load ide 0 1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)' nvram -c set nand_boot no nvramコマンド?を使ってU-Boot環境変数を設定している。 各環境変数の変更内容については環境変数について?で説明する。 ここではルートファイルシステムを/dev/sda2、ブートするカーネルを/dev/sda1、NANDフラッシュからのブートはしない、という設定になっている。 fi /mnt/mtd/ChangeMyUbootEnvの有無の条件分岐を終了する。 # OK! u-boot environment is changed. U-Boot環境を変更しました、というコメント。 実際は/mnt/mtd/ChangeMyUbootEnvがなくてもここを通るので「変更しました」では間違っているが、コメントなので問題はない。 else /mnt/mtd/hddrootfs.tar.gzかあるいは/mnt/mtd/uImage.buffaloがなければ以下を実行。 exit 1 終了ステータスに「1」(つまり異常)を設定しスクリプトを終了する。 fi /mnt/mtd/hddrootfs.tar.gzと/mnt/mtd/uImage.buffaloの有無の条件分岐を終了する。